#include<iostream>
#include<string>
#include<cerrno>
#include<cassert>
#include<cstring>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<unistd.h>

using namespace std;

#define NAMED_PIPE "./mypipe" // 创建管道的路径

// 创建命名管道
bool createFifo(const string& path)
{
    umask(0);
    int n = mkfifo(path.c_str(), 0600); //0600 只能我自己使用这个管道
    if(n == 0)
    {
        return true;
    }
    else
    {
        cout << "errno: " << errno << strerror(errno) << endl;
        return false;
    }
}

//删除命名管道
void removeFifo(const string& path)
{
    int n = unlink(path.c_str()); // 转化为char*
    assert(n == 0); // assert是debug模式下才生效的，realise模式下无效
    (void)n; // 在realise模式下，n没有被使用，这里就是告诉编译器不要警告，这里没有问题
}